package com.rybbaby.tss.core.utils;

import java.util.ArrayList;
import java.util.Map;

/**
 * @author 谢进伟
 * @description api 响应类
 * @createDate 2017/6/19 11:06
 */
public class AppResponse extends APIResponse {

	public AppResponse() {
	}

	/**
	 * @param data 响应的业务数据
	 */
	public AppResponse(Object data) {
		this.data = data;
	}

	/**
	 * @param resMsg  响应文本信息
	 * @param resCode 响应码
	 */
	public AppResponse(String resMsg, int resCode) {
		this.resMsg = resMsg;
		this.resCode = resCode;
	}

	/**
	 * @param resMsg  响应文本信息
	 * @param resCode 响应码
	 * @param data    响应的业务数据
	 */
	public AppResponse(String resMsg, int resCode, Object data) {
		this(resMsg, resCode);
		this.data = data;
	}

	/**
	 * @param resMsg   响应文本信息
	 * @param resCode  响应码
	 * @param data     响应的业务数据
	 * @param pageNo   业务数据分页模式下的当前页码
	 * @param pageSize 业务数据分页模式下的每一页现实的记录数
	 */
	public AppResponse(String resMsg, int resCode, Object data, Integer pageNo, Integer pageSize) {
		super(resMsg, resCode, data, pageNo, pageSize);
	}

	/**
	 * @param resMsg   响应文本信息
	 * @param resCode  响应码
	 * @param data     响应的业务数据
	 * @param pageNo   业务数据分页模式下的当前页码
	 * @param pageSize 业务数据分页模式下的每一页现实的记录数
	 * @param isPaging 是否分页
	 */
	public AppResponse(String resMsg, int resCode, Object data, Integer pageNo, Integer pageSize, boolean isPaging) {
		super(resMsg, resCode, data, pageNo, pageSize, isPaging);
	}

	/**
	 * @param resMsg       响应文本信息
	 * @param resCode      响应码
	 * @param pageNo       业务数据分页模式下的当前页码
	 * @param pageSize     业务数据分页模式下的每一页现实的记录数
	 * @param extendParams 扩展参数
	 */
	public AppResponse(String resMsg, int resCode, Object data, Integer pageNo, Integer pageSize, Map<String, Object> extendParams) {
		super(resMsg, resCode, data, pageNo, pageSize, extendParams);
	}

	/**
	 * @param resMsg       响应文本信息
	 * @param resCode      响应码
	 * @param data         响应的业务数据
	 * @param pageNo       业务数据分页模式下的当前页码
	 * @param pageSize     业务数据分页模式下每页显示的记录数
	 * @param extendParams 扩展参数
	 * @param isPaging     是否分页
	 */
	public AppResponse(String resMsg, int resCode, Object data, Integer pageNo, Integer pageSize, Map<String, Object> extendParams, boolean isPaging) {
		super(resMsg, resCode, data, pageNo, pageSize, extendParams, isPaging);
	}

	/**
	 * 检查data参数类型
	 *
	 * @return
	 */
	protected boolean checkDataType() {
		if(this.data == null) {
			this.data = new ArrayList<Object>();
		}
		return true;
	}
}
